﻿//加载字节码模块
#include"../Qesol/vmdef.h"
#include<stdio.h>
#include"msave.h"
//将字节码转化为命令
typedef struct
{
	int op;
	MValue lval;
}Qvm_Code;
typedef struct
{
	Qvm_Code* c_list;//动态分配的字节码表 一次加载1024位字节码
	int size;//当前加载的长度
	int max_size;
}Qvm_CodeList;
typedef struct
{
	Qvm_CodeList codes;
	char* inf_fname;//字节码文件名
	int cur_index;//当前读开始位置
	FILE* fp;//打开的文件号，只在程序退出时关闭，其余时间占用

}Qvm_CodeCtl;

Qvm_CodeCtl* QLoadCodeFile(char* path);//从指定路径加载一个字节码文件并读取&返回
bool QLoadResetFile(char* path, Qvm_CodeCtl* ctl, bool isreadall);//重定向并加载新的文件
bool QLoadReadNext(Qvm_CodeCtl* ctl);//继续向后读1024组字节码
void QLoadCloseFile(Qvm_CodeCtl* ctl);//关闭打开的文件
